#include<iostream>
#include<string.h>
#include<thread>
#include"./MapServer/MapApp.hpp"
#include"./FuncServer/FuncApp.hpp"

#define TEST 0      //调试用标记
#define MapServerIp "127.0.0.1"     //环境数据服务器，根据实际情况更改并编译  

int main(int argc, char *argv[])
{


#if TEST

    //启动服务
    SC_SUN::MapApp mapApp("/*", 33335, 33336);
    mapApp.Start();
    std::this_thread::sleep_for(std::chrono::seconds(2));
    SC_SUN::FuncApp funcApp("/*", 33337, "127.0.0.1", 33336);           
    funcApp.Start();
    std::this_thread::sleep_for(std::chrono::seconds(2));
    while(1)
        std::this_thread::sleep_for(std::chrono::milliseconds(10));

#else

   //判断命令行参数
   if (argc > 1)
   {
       if (strcmp(argv[1], "map") == 0)
       {
            //启动服务
            SC_SUN::MapApp mapApp("/*", 33335, 33336);
            mapApp.Start();

            //启动环境服务器
            //由于不需要优雅的退出程序，因此可以直接关闭
            while(1)
                std::this_thread::sleep_for(std::chrono::milliseconds(10));
       }
   }
   else     //启动算法仿真服务
   {
        SC_SUN::FuncApp funcApp("/*", 33337, MapServerIp, 33336);           
        funcApp.Start();
        while(1)
            std::this_thread::sleep_for(std::chrono::milliseconds(10));
   }
#endif

    return 0;
}
